/*
 * CTriangleBezierSurfaces.h
 *
 *  Created on: 31.07.2009
 *      Author: cfuerst
 */

bool read_triangle(char filename[200], CPt &A, CPt &B, CPt &C, unsigned &n, vector<CPt> &bijk);

bool euklid_2_bary(CPt A, CPt B, CPt C, CPt pt, CPt v, CPt &pt_bary, CPt &v_bary);

bool decas(unsigned n, vector<CPt> bijk, CPt pt, CPT &point);

bool deriv_edge(unsigned n, vector<CPt> bijk, CPt pt, CPt &derivAB, CPt &derivAC, CPt &derivBC);

bool direct_deriv(unsigned n, vector<CPt> bijk, CPt pt, CPt R, CPt &derivR);

bool triangle_continuation(unsigned n, vector<CPt> bijk, vector<CPt> &bijk_cont);

bool deg_raising(unsigned n, vector<CPt> bijk, vector<CPt> &bijk_raised);

bool CT_split(unsigned n, vector<CPt> bijk, CPt pt, vector<CPt> &bijk1, vector<CPt> bijk2, vector<CPt> bijk3);

bool change_ABC(unsigned n, CPt A, CPt B, CPt C, CPt D, CPt E, CPt F, vector<CPt> bijk_ABC, vector<CPt> bijk_DEF);

bool triangle_2_biv(unsigned n, vector<CPt> bijk, vector<CPt> &monom);

bool grid_points(unsigned n, vector<CPt> bijk, unsigned pts_per_edge, vector<CPt> points);

bool traingle_maple_out(char filename[200], unsigned n, CPt A, CPt B, CPt C, vector<CPt> bijk);
